package com.example.concurrency.singleton;

import com.example.concurrency.annotation.NotRecommend;
import com.example.concurrency.annotation.ThreadSafe;

/**
 * 懒汉模式
 * 添加synchronized：不推荐，带来了线程上的开销问题
 *
 * @author 文希
 * @create 2019-05-16 23:35
 */
@ThreadSafe
@NotRecommend
public class SingletonExample3 {

    // 私有的构造函数
    private SingletonExample3() {

    }

    // 单例对象
    private static SingletonExample3 instance = null;

    // 静态的工厂方法
    public static synchronized SingletonExample3 getInstance() {
        if (instance == null) {
            return new SingletonExample3();
        }
        return instance;
    }

}
